@NullResponse @CheckFlag(FirstStrokeTraining) @SetFlag(FirstStrokeTraining)
So #SlaveName #DT
Its time for your first stroke training #DT
Cock'xercise you might call it #GNMLol #DT
Well! #DT
Its rather simple #DT
Everytime you'll start with a warmup that ends with you edging once #DT
You'll then be reminded about some of the few key words to use in different situations #DT
You have 3 "life" #DT
So the first time you edge while training you say "first edge" and lose one life #DT
The next time you edge you say "second edge" and lose one life #DT
And when you edge a third time you'll simply say "stop" and its training over #DT
After an edge you are given a short break #DT
You will be stroking to a slideshow and you are not permitted to look away from the images #DT
You will stroke to the beat and you will only stop stroking should you edge #DT
It goes without saying that cumming/ejaculating is NOT allowed.. #DT
You will end at a certain level ranging from 1-50 #DT
You'll ofcourse start at level 1 today #DT
The goal is simple to reach the highest level possible #DT
If you dream about being anything else than a houseslave I suggest you aim for level 50 #GNMLol #DT
The beat patterns will also increase in difficuilty #DT
It requires some series stamina to go above level 40 #DT
After each training session you are reduced 5 levels unless you're below level 10.. #DT
So lets stop wasting time and just get you started #GNMGrin #DT @Goto(WarmUp)
(FirstStrokeTraining)
Its time for your stroke training #GNMGrin #DT
Remember #SlaveName to say: #DT
"First edge" when you edge the first time #DT
Only say "First edge" <i>after</i> the warm up.. #DT
The first edge is simply to complete the warm up.. #DT
"Second edge" when you edge the second time #DT
"Stop" when you reach the third and final edge.. #DT
Now lets warm you up a little...  #DT
Start stroking slowly #DT
When you hear the pace you stroke it to the beat #DT
(WarmUp)
@NullResponse @ShowImage @PlayAudio[\GNMSounds\Stroking\StrokeTraining\C.mp3] @Wait(5)
@NullResponse @ShowImage @Wait(5)
@NullResponse @ShowImage @Wait(5)
@NullResponse @ShowImage @Wait(5)
@NullResponse @ShowImage @Wait(5)
@NullResponse @ShowImage @Wait(5)
@NullResponse @ShowImage @Wait(5)
Stop stroking..
#GNMEdge @EdgeNoHold @ShowImage
#LetTheEdgeFace @ChangeVar[EdgeCount]=[EdgeCount]+[1] @Wait(#Random(3,7))
@NullResponse @CustomMode(first edge, Goto, FirstEdge) @SetVar[TimeToIncreaseLevel]=[0]
Rest a minute while I look up your level #DT
But be ready #DT
We begin the moment you hear the beat #DT
Make me proud #SlaveName #DT
(FindLevel)
@NullResponse @RapidCodeOn @If[StrokeLevel]==(1)Then(Level1)
@NullResponse @If[StrokeLevel]==(2)Then(Level2)
@NullResponse @If[StrokeLevel]==(3)Then(Level3)
@NullResponse @If[StrokeLevel]==(4)Then(Level4)
@NullResponse @If[StrokeLevel]==(5)Then(Level5)
@NullResponse @If[StrokeLevel]==(6)Then(Level6)
@NullResponse @If[StrokeLevel]==(7)Then(Level7)
@NullResponse @If[StrokeLevel]==(8)Then(Level8)
@NullResponse @If[StrokeLevel]==(9)Then(Level9)
@NullResponse @If[StrokeLevel]==(10)Then(Level10)
@NullResponse @If[StrokeLevel]==(11)Then(Level11)
@NullResponse @If[StrokeLevel]==(12)Then(Level12)
@NullResponse @If[StrokeLevel]==(13)Then(Level13)
@NullResponse @If[StrokeLevel]==(14)Then(Level14)
@NullResponse @If[StrokeLevel]==(15)Then(Level15)
@NullResponse @If[StrokeLevel]==(16)Then(Level16)
@NullResponse @If[StrokeLevel]==(17)Then(Level17)
@NullResponse @If[StrokeLevel]==(18)Then(Level18)
@NullResponse @If[StrokeLevel]==(19)Then(Level19)
@NullResponse @If[StrokeLevel]==(20)Then(Level20)
@NullResponse @If[StrokeLevel]==(21)Then(Level21)
@NullResponse @If[StrokeLevel]==(22)Then(Level22)
@NullResponse @If[StrokeLevel]==(23)Then(Level23)
@NullResponse @If[StrokeLevel]==(24)Then(Level24)
@NullResponse @If[StrokeLevel]==(25)Then(Level25)
@NullResponse @If[StrokeLevel]==(26)Then(Level26)
@NullResponse @If[StrokeLevel]==(27)Then(Level27)
@NullResponse @If[StrokeLevel]==(28)Then(Level28)
@NullResponse @If[StrokeLevel]==(29)Then(Level29)
@NullResponse @If[StrokeLevel]==(30)Then(Level30)
@NullResponse @If[StrokeLevel]==(31)Then(Level31)
@NullResponse @If[StrokeLevel]==(32)Then(Level32)
@NullResponse @If[StrokeLevel]==(33)Then(Level33)
@NullResponse @If[StrokeLevel]==(34)Then(Level34)
@NullResponse @If[StrokeLevel]==(35)Then(Level35)
@NullResponse @If[StrokeLevel]==(36)Then(Level36)
@NullResponse @If[StrokeLevel]==(37)Then(Level37)
@NullResponse @If[StrokeLevel]==(38)Then(Level38)
@NullResponse @If[StrokeLevel]==(39)Then(Level39)
@NullResponse @If[StrokeLevel]==(40)Then(Level40)
@NullResponse @If[StrokeLevel]==(41)Then(Level41)
@NullResponse @If[StrokeLevel]==(42)Then(Level42)
@NullResponse @If[StrokeLevel]==(43)Then(Level43)
@NullResponse @If[StrokeLevel]==(44)Then(Level44)
@NullResponse @If[StrokeLevel]==(45)Then(Level45)
@NullResponse @If[StrokeLevel]==(46)Then(Level46)
@NullResponse @If[StrokeLevel]==(47)Then(Level47)
@NullResponse @If[StrokeLevel]==(48)Then(Level48)
@NullResponse @If[StrokeLevel]==(49)Then(Level49)
@NullResponse @If[StrokeLevel]==(50)Then(Level50)
(Level1)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat1)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat1)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat1)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat1)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level1)
(Level2)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat2)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat2)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat2)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat2)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level2)
(Level3)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat3)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat3)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat3)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat3)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level3)
(Level4)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat4)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat4)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat4)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat4)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level4)
(Level5)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat5)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat5)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat5)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat5)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level5)
(Level6)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat6)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat6)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat6)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat6)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level6)
(Level7)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat7)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat7)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat7)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat7)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level7)
(Level8)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat8)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat8)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat8)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat8)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level8)
(Level9)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat9)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat9)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat9)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat9)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level9)
(Level10)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat10)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat10)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat10)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat10)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level10)
(Level11)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat11)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat11)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat11)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat11)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level11)
(Level12)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat12)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat12)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat12)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat12)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level12)
(Level13)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat13)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat13)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat13)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat13)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level13)
(Level14)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat14)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat14)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat14)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat14)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level14)
(Level15)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat15)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat15)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat15)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat15)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level15)
(Level16)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat16)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat16)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat16)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat16)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level16)
(Level17)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat17)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat17)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat17)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat17)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level17)
(Level18)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat18)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat18)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat18)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat18)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level18)
(Level19)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat19)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat19)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat19)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat19)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level19)
(Level20)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat20)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat20)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat20)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat20)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level20)
(Level21)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat21)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat21)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat21)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat21)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level21)
(Level22)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat22)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat22)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat22)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat22)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level22)
(Level23)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat23)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat23)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat23)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat23)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level23)
(Level24)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat24)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat24)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat24)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat24)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level24)
(Level25)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat25)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat25)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat25)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat25)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level25)
(Level26)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat26)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat26)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat26)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat26)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level26)
(Level27)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat27)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat27)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat27)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat27)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level27)
(Level28)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat28)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat28)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat28)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat28)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level28)
(Level29)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat29)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat29)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat29)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat29)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level29)
(Level30)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat30)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat30)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat30)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat30)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level30)
(Level31)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat31)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat31)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat31)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat31)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level31)
(Level32)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat32)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat32)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat32)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat32)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level32)
(Level33)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat33)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat33)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat33)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat33)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level33)
(Level34)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat34)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat34)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat34)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat34)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level34)
(Level35)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat35)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat35)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat35)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat35)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level35)
(Level36)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat36)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat36)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat36)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat36)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level36)
(Level37)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat37)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat37)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat37)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat37)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level37)
(Level38)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat38)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat38)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat38)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat38)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level38)
(Level39)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat39)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat39)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat39)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat39)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level39)
(Level40)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat40)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat40)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat40)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat40)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level40)
(Level41)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat41)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat41)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat41)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat41)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level41)
(Level42)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat42)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat42)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat42)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat42)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level42)
(Level43)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat43)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat43)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat43)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat43)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level43)
(Level44)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat44)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat44)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat44)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat44)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level44)
(Level45)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat45)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat45)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat45)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat45)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level45)
(Level46)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat46)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat46)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat46)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat46)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level46)
(Level47)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat47)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat47)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat47)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat47)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level47)
(Level48)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat48)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat48)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat48)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat48)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level48)
(Level49)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat49)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat49)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat49)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat49)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level49)
(Level50)
@NullResponse @ShowImage @If[TimetoIncreaseLevel]>=[50]Then(IncreaseLevel) #PlayStrokeTraining @Wait(#Random(5,10)) @Chance10(ChangeBeat50)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance20(ChangeBeat50)
@NullResponse @ShowImage @Wait(#Random(5,10)) @Chance30(ChangeBeat50)
@NullResponse @ShowImage @Wait(#Random(5,10)) 
(ChangeBeat50)
@NullResponse @ShowImage @ChangeVar[TimeToIncreaseLevel]=[TimeToIncreaseLevel]+[#Random(0,10)] @Goto(Level50)
(IncreaseLevel)
@NullResponse @SetVar[TimetoIncreaseLevel]=[0]
@NullResponse @If[StrokeLevel]>=[50]Then(Skip) @ChangeVar[StrokeLevel]=[StrokeLevel]+[1] @Goto(FindLevel)
(Skip)
@RT(You're at the highest level..,You're at the very top,You cant go higher level!) #DT
@Flag(Personality1) I'm impressed! #DT
Keep at it #SlaveName #DT
@End
(FirstEdge)
Stop stroking! #DT @PlayAudio[\GNMSounds\SpecialSounds\Bell.mp3] @CustomMode(ModeText, Normal) @ChangeVar[TimetoIncreaseLevel]=[TimetoIncreaseLevel]-[15]
Rest before you start again #DT @CustomMode(second edge, Goto, SecondEdge) @Wait(#Random(10,25)) @Goto(FindLevel)
(SecondEdge)
Stop stroking! #DT @PlayAudio[\GNMSounds\SpecialSounds\Bell.mp3] @CustomMode(ModeText, Normal) @ChangeVar[TimetoIncreaseLevel]=[TimetoIncreaseLevel]-[15]
Rest before you start again #DT @CustomMode(stop, Goto, Stop) @Wait(#Random(10,25)) @Goto(FindLevel)
(Stop)
@RT(#GNMGrin,#GNMLol,#GNMEmoteHappy) #DT @CustomMode(ModeText, Normal)
@RT(Couldn't handle more huh?,I guess that was it huh,So "no more" I hear..) #DT
@NullResponse @RapidCodeOn @If[StrokeLevel]>=[50]Then(50End)
@NullResponse @If[StrokeLevel]>[40]Then(40End)
@NullResponse @If[StrokeLevel]>[30]Then(30End)
@NullResponse @If[StrokeLevel]>[20]Then(20End)
@NullResponse @If[StrokeLevel]>[10]Then(10End)
@RT(WAUV I'm disapointed..., I expected a lot MORE from you..) #DT @ChangeVar[GNMMerits]=[GNMMerits]-[50]
@End
(50End)
@Flag(Personality1) @RT(I guess I cant expect more from you when you're at level 50 #GNMLol,I suppose I shouldn't expect more since 50 is the very top #GNMGrin,Bravo level 50!,Good job level 50!,Oh my level 50) #DT2 @ChangeVar[GNMMerits]=[GNMMerits]+[35]
@Flag(Personality2) @RT(Level 50.. Good!,There is hope for you slave,You did good #SlaveName,You should feel a little proud slave) #DT2 @ChangeVar[GNMMerits]=[GNMMerits]+[30]
@Flag(Personality3) @RT(Well well I suppose that was okay,Oh wauw you actually went higher than level 20..,I'm surprised you even lasted for a few minutes..) #DT2 @ChangeVar[GNMMerits]=[GNMMerits]+[25]
@NullResponse @ChangeVar[StrokeLevel]=[StrokeLevel]-[5] 
@End
(40End)
@Flag(Personality1) @RT(You are above level 40!,Well done!,Exelent job,You did good #SlaveName,Bravo #SubName,That was exelent work #SlaveName,I'm applauding you #SubName) #DT @ChangeVar[GNMMerits]=[GNMMerits]+[25]
@Flag(Personality2) @RT(It seems you did quite alright today!,Oh my you made it passed level 40..,Well it seem you made it pass level 40) #DT @ChangeVar[GNMMerits]=[GNMMerits]+[20]
@Flag(Personality3) @RT(Not at level 50 huh..,Oh you actually went higher than 40,I feel like you've cheated a little..) #DT @ChangeVar[GNMMerits]=[GNMMerits]+[10]
@NullResponse @ChangeVar[StrokeLevel]=[StrokeLevel]-[5] 
@End
(30End)
@Flag(Personality1) @RT(You did okay,You effort was mediocre,I must admit I expected a little more,I suppose I really wasn't expecting much more from you,I guess ) #DT @ChangeVar[GNMMerits]=[GNMMerits]+[10]
@Flag(Personality2) @RT(Above 30 is alright slave,Well below 40 is still OK,You could probably do better.. Maybe..,You need to work harder slave) #DT @ChangeVar[GNMMerits]=[GNMMerits]+[5]
@Flag(Personality3) @RT(Below level 40 huh..,Oh wauv you do absolutely not impress..,I was expecting more from you #SubName) #DT @ChangeVar[GNMMerits]=[GNMMerits]-[10]
@NullResponse @ChangeVar[StrokeLevel]=[StrokeLevel]-[5] 
@End
(20End)
@Flag(Personality1) @RT(I did expect more..,Below 30 is for cuckold..,Below 30 isn't worth anything..,You went below 30 you lousy fuck..) #DT @ChangeVar[GNMMerits]=[GNMMerits]-[10]
@Flag(Personality2) @RT(Going below 30 makes me considder permanent chastity for you..,Below 30 does make me think about locking you up..,With a low score like that I feel sad for you..) #DT @ChangeVar[GNMMerits]=[GNMMerits]-[15]
@Flag(Personality3) @RT(By the Goddess your score is ridicouless!,I guess your #GNMCock is crying for the #Cage with such a low score..) #DT @ChangeVar[GNMMerits]=[GNMMerits]-[25]
@NullResponse @ChangeVar[StrokeLevel]=[StrokeLevel]-[5] 
@End
(10End)
Oh well that was it for your stroke training today! #DT @ChangeVar[GNMMerits]=[GNMMerits]-[35]
Since you're pathetic and hasn't gone above level 10 I'm not decreasing your level.. #DT
@End